package cn.itcast.search.service;

import cn.itcast.hmall.dto.common.PageDTO;
import cn.itcast.hmall.dto.common.ResultDTO;
import cn.itcast.hmall.dto.search.SearchReqDTO;
import cn.itcast.hmall.pojo.item.ItemDoc;

import java.util.List;
import java.util.Map;

public interface SearchService {
    /**
     * es批量导数据
     * @return
     */
    ResultDTO searchData();

    /**
     * 搜索栏自动补全
     * @param key
     * @return
     */
    List<String> searchSuggestion(String key);

    /**
     * 过滤项聚合功能
     * @return
     */
    Map<String, List<String>> searchFilters(SearchReqDTO searchReqDTO);

    /**
     * 基本搜索功能
     * @param searchReqDTO
     * @return
     */
    PageDTO<ItemDoc> searchList(SearchReqDTO searchReqDTO);

    /**
     * 新增商品
     */
    void insertById(Long id);

    /**
     * 删除商品
     */
    void deleteById(Long id);

    /**
     * 上架
     */
    void upById(Long id);

    /**
     * 上架
     * @param id
     */
    void downById(Long id);
}
